package com.foreveross.mofang.serviceconsole.application.core;

import org.dayatang.querychannel.Page;
import org.openkoala.koala.auth.core.domain.User;

import com.foreveross.mofang.serviceconsole.application.dto.ChannelDTO;

/**
 *  渠道管理基础设施层接口
 * 
 * @author fb
 *
 */
public interface ChannelApplication {

	/**
	 * 根据id获取渠道数据
	 * 
	 * @param id
	 *            渠道id
	 * 
	 * @return
	 */
	ChannelDTO getChannel(Long id);

	/**
	 * 配制一个新的渠道数据
	 * 
	 * @param channel 
	 * @param loginUser
	 */
	void saveChannel(ChannelDTO channel, User loginUser);

	/**
	 * 更新渠道信息
	 * 
	 * @param channel
	 * @param loginUser
	 */
	void updateChannel(ChannelDTO channel, User loginUser);

	/**
	 * 根据渠道id废弃指定渠道
	 * 
	 * @param id
	 * @param loginUser
	 */
	void removeChannel(Long id, User loginUser);
	
	/**
	 *  渠道迁移
	 *  
	 * @param group 组id
	 * @param Ids 渠道id
	 */
	void migration(Long group, Long[] Ids);

	/**
	 * 批量废弃指定的渠道
	 * 
	 * @param ids
	 * @param loginUser
	 */
	void removeChannels(Long[] ids, User loginUser);

	/**
	 *  分页获取渠道信息
	 *  
	 * @param channel
	 * @param currentPage
	 * @param pageSize
	 * @return
	 */
	public Page<ChannelDTO> pageQueryChannel(ChannelDTO channel,
			int currentPage, int pageSize);

}
